from users.models import EmailVerifyRecord
from django.core.mail import send_mail
from random import Random


# 生成验证码
def random_str(randomlength=16):
    res_str = ''
    chars = 'AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789'
    length = len(chars)-1
    random = Random()
    for i in range(randomlength):
        res_str += chars[random.randint(0, length)]
    return res_str


# 发送验证码
def send_email(email, send_type='register'):
    # 将验证码保存到数据库
    email_record = EmailVerifyRecord()
    code = random_str(16)
    email_record.code = code
    email_record.email = email
    email_record.send_type = send_type
    email_record.save()

    # 发送邮件
    email_title = ''
    email_body = ''

    if send_type == 'register':
        email_title = '慕学在线网注册激活链接'
        email_body = '请点击下面的链接激活你的账号: http://127.0.0.1:8000/active/{0}'.format(code)

        send_state = send_mail(email_title, email_body, 'shiyihuyang@163.com', [email])
    elif send_type == 'forget':
        email_title = '慕学在线网忘记密码'
        email_body = '请点击下面的链接重置您的密码: http://127.0.0.1:8000/reset/{0}'.format(code)

        send_state = send_mail(email_title, email_body, 'shiyihuyang@163.com', [email])
    elif send_type == 'update_email':
        email_title = '慕学在线网邮箱修改验证码'
        email_body = '您的邮箱验证码为: {0}'.format(code)

        send_state = send_mail(email_title, email_body, 'shiyihuyang@163.com', [email])
